Ext.require(['Ext.form.*',
    'Ext.layout.container.Column',
    'Ext.tab.Panel',
    'Ext.tree.*',
    'Ext.data.*',
]);
  
var msg= function(title, msg)
        {
                Ext.Msg.show({
                        title: title,
                        msg: msg,
                        minWidth: 200,
                        modal: true,
                        icon: Ext.Msg.ERROR,
                        buttons: Ext.Msg.OK
                          });
        };
        
 
 
var rolUsuario="Invitado";  
  
var panelContenido= new Ext.tab.Panel({
        id:'panelContenido',
        region: 'center',
        width:'100%',
       
        plain: true,
        activeTab: 0,        
        items: [{title:'Inicio', id: 'tab1'}]                
    });
    
  var storeMenu= Ext.create( 'Ext.data.TreeStore',({
      
      proxy:{
                type: 'ajax',url: 'login/cargarMenu'
            },
      root:{ 
                text: '',  
                 user:"",
                 status:"",
                expanded: true
                //children:[{text: 'hola', leaf: true, iconCls: "x-tree-node-leaf"}]
            }
         
      
  }));

 var panelMenu= new Ext.tree.Panel({
        region:'west',
	id:'panelMenu',
        store: storeMenu,
        title: 'Menu',        
        width: '25%',
        split: 'true',
        collapsible: 'true',
        rootVisible: false,  
        listeners: {
            
        itemclick: function(a,b)
        {
		if(b.isLeaf())
                    {
                       // alert(b.getId());                      
                         gestionarMenu(b);  
                        // Ext.Ajax.request({url:'usuario/index'});
                    }
	},

        render: function() {

            this.getRootNode().expand();

        }}

  });
  
var butCerrarSesion=new Ext.button.Button({
    
    text:'Cerrar Sesion',
    id:'butCerrarSesion',
    y: 65,
    x:200,
    disabled: true,
    
    handler: function()
    {
            
            Ext.MessageBox.confirm('Confirm', 'Esta Seguro que desea cerrar sesion?',
                                function(btn, text){
                                    if(btn=='yes')
                                    {
                                        Ext.Ajax.request({
            
                                                url: 'utilidades/cerrarSesion',

                                                success: function(response)
                                                {
                                                       rolUsuario="Invitado";
                                                        
                                                    
                                                     Ext.getCmp('butCerrarSesion').setDisabled(true);
                                                       
                                                       //Ext.get('panelLoggin').ghost('t'); 
                                                       panelContenido.removeAll();
                                                       panelContenido.add({title:'Inicio', id: 'tab1'});
                                                      panelContenido.doLayout();                                                                                                              
                                                      storeMenu.load();
                                                       Ext.getCmp('iniciarSesion').setDisabled(false);
                                                       Ext.getCmp("nombreUsuario").setText("Invitado");
                                                        Ext.getCmp("rolUsuario").setText("Invitado");
                                                       
                                                }

                                            });
                                        
                                    }
                                    else
                                        Ext.example.msg('Eliminar Usuario', 'Cancelo Eliminar Usuario');
                                },
                                this
                        );
            
            
    }
});


Ext.onReady(function(){
        
        
        
    var funcionLoggin= function()
    {        
            formLoggin.getForm().submit({
            clientValidation: true,
            method: "POST",
            success: function(form,action)
                    {
                             var obj = Ext.JSON.decode(action.response.responseText);
                            if(obj.success)
                            {                        
                                     panelContenido.removeAll();
                                   panelContenido.add({title:'Inicio', id: 'tab1'});
                                  panelContenido.doLayout();                      
                                   var infoUsuario=obj.info;
                                   rolUsuario=infoUsuario.rolUsuario;
                                   nombreUsuario=infoUsuario.nombUsuario;
                                   Ext.getCmp("nombreUsuario").setText(nombreUsuario);
                                   Ext.getCmp("rolUsuario").setText(rolUsuario); 
                                    Ext.getCmp('butCerrarSesion').setDisabled(false);
                                   Ext.get('panelLoggin').ghost('t');
                                   formLoggin.getForm().reset();
                                   Ext.getCmp('iniciarSesion').setDisabled(true);
                                   
                                   storeMenu.load();                                                                   
                            }
                            else{Ext.example.msg(obj.errors.title, obj.errors.reason);}
                    },
            failure: function(form,action)
                    {                                                    
                            if(action.failureType=='server')
                            {
                                    var obj = Ext.JSON.decode(action.response.responseText);
                                    Ext.example.msg('Intenta de nuevo!', obj.errors.reason);
                            }
                            else
                            {
                                    Ext.example.msg('Ups!', 'el servidor no responde: ' + action.response.responseText);
                            }
                            formLoggin.getForm().reset();
                    }
            })
    }
    
  var formLoggin= new Ext.form.Panel({  
      frame: 'true',
      url: 'login/loggin',
      x:0,y:0,
      layout: 'anchor',
      width: '100%',
      height: '100%',  
      buttonAlign: 'center',
      defaults:{anchor:'100%'},
      defaultType: 'textfield',
      border: 0,
      fieldDefaults: {msgTarget: 'side'},
      items:[{name: 'nombUsuario', id: 'nombUsuario', fieldLabel:'Nombre Usuario',inputType:'text',allowBlank:false},
            {name:'contrasenia', id: 'contrasenia', fieldLabel:'Contraseña', inputType:'password',allowBlank:false}],

      buttons:[{text:'Iniciar Sesion', handler: funcionLoggin,id:'butIniSesion'},
                {text:'Cancelar',handler:function(){Ext.get('panelLoggin').ghost('t'); formLoggin.getForm().reset();}}]
});

var panelLoggin=new Ext.panel.Panel({        
            
         id:'panelLoggin',
	 x: 0, y:0, width: '100%', height: '100%',	 	  
	 layout: 'absolute',
	 border: 0,              	 
         bodyStyle: {background: '#ff0'},
	 items:[formLoggin]        
      }); 
  
    var panelLogo=new Ext.panel.Panel({        
         
       region: 'center',
       layout:'absolute',
       id: 'panelLogo',
       bodyStyle: {background: '#DFE8F6'},
       border: 0,         
       width:'100%',
       items:[{xtype:'image', src:'../images/logoG2T.png', x:5},{xtype:'image', src:'../images/titulo.gif',x:280}]
    });
       

    var panelInfo=new Ext.panel.Panel({        
            
         region: 'east',
         id: 'panelInfo',
	 
	layout:'absolute',
	  border: 0,
         bodyStyle: {background: '#DFE8F6'},
	 style:{"text-align":'center'},
         width:'30%',
	  items:[{id: 'rolUsuario', xtype:'label',text:'Invitado',y: 25},
		 {id: 'nombreUsuario', xtype:'label',text:'Invitado', y: 45},
                butCerrarSesion,
		 {id:'iniciarSesion', xtype:'button', text:'Iniciar Sesion',handler:function(){Ext.get('panelLoggin').slideIn('t');}}, panelLoggin]                                  
     });                           
    
    var panelEncabezado= new Ext.panel.Panel({        
        region: 'north',           
        layout:'border', 	           	
        height: '12%',
        items:[panelLogo, panelInfo]              
    });        
    
    var panelCentral= new Ext.panel.Panel({        
        
        region: 'center', 
        layout:'border',
        padding: 3,
        border: 0,       
        items:[panelMenu,panelContenido]                        
    });
    
    var panelFooter= new Ext.panel.Panel({
        
        region: 'south',            
        height: '5%',
	frame: true               
    });    
    
    var viewport= new Ext.container.Viewport({         

        layout:'border',
        padding: 3,
        items: [ panelEncabezado,panelCentral,panelFooter]                
    });    
    
    Ext.get('panelLoggin').ghost('t');
});




